/**********************************************************************************************************************
 *
 * Project:    mGameEngine
 * File:       directionalsoundsource.h
 * Author:     twoja stara
 * Created on: 2009-07-31
 *
 **********************************************************************************************************************/

#ifndef DIRECTIONALSOUNDSOURCE_H_
#define DIRECTIONALSOUNDSOURCE_H_

#include "ambientsoundsource.h"

namespace mGameEngine
{
namespace Audio
{

/**
 *
 */
class DirectionalSoundSource : public AmbientSoundSource
{
protected:
    /**
     * Inner cone angle.
     */
    float _innerCone;

    /**
     * Outer cone angle.
     */
    float _outerCone;

public:
    /**
     * Create new directional sound source.
     */
    DirectionalSoundSource();

    /**
     * Destroy directional sound source.
     */
    virtual ~DirectionalSoundSource();

    /**
     * Get inner directional sound source cone angle.
     * @return inner cone angle in radians
     */
    float getInnerConeAngle() const
    {
        return _innerCone;
    }

    /**
     * Set inner directional sound source cone angle.
     * @param innerCone inner cone angle in radians
     */
    void setInnerConeAngle(float innerCone)
    {
        _innerCone = innerCone;
    }

    /**
     * Get outer directional sound source cone angle.
     * @return outer cone angle in radians
     */
    float getOuterConeAngle() const
    {
        return _outerCone;
    }

    /**
     * Set outer directional sound source cone angle.
     * @param outerCone outer cone angle in radians
     */
    void setOuterConeAngle(float outerCone)
    {
        _outerCone = outerCone;
    }

    /**
     * Set directional sound source.
     */
    virtual void set() const;
};

}

}

#endif // DIRECTIONALSOUNDSOURCE_H_
